package me.iholo.dao;

import org.hibernate.Session;

import java.io.Serializable;
import java.util.Collection;

/**
 * The interface Base dao inter.
 *
 * @param <k> the type parameter
 * @param <T> the type parameter
 */
public interface BaseDao<K extends Serializable, T extends Serializable>{
    /**
     * Gets session.
     *
     * @return the session
     */
    Session getSession();

    /**
     * Save k 持久化对象
     *
     * @param t 要持久化对象
     * @return 实体对象的ID
     */
    K  save(T t);

    void saveAll(Collection<T> collection);

    T findById(K  id);

    T update(T t);

    T saveOrUpdate(T t);

    void delete(T t);

    void deleteAll(Collection<T> collection);

    boolean deleteById(K  id);


}